import 'package:injectable/injectable.dart';
import 'data/datasources/counter_local_data_source.dart';
import 'data/repositories/counter_repository_impl.dart';
import 'domain/usecases/increment_counter.dart';

@module
abstract class RegisterModuleImpl {
  @lazySingleton
  CounterLocalDataSource get counterLocalDataSource => CounterLocalDataSource();

  @lazySingleton
  CounterRepositoryImpl get counterRepository => CounterRepositoryImpl(counterLocalDataSource);

  @lazySingleton
  IncrementCounter get incrementCounter => IncrementCounter(counterRepository);
}